/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controladores;

import DataTypes.DataMensaje;
import Hndlr.HndlrChat;
import Interfaces.Factory;
import Interfaces.ICtrlChat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import objetos.Usuario;

/**
 *
 * @author Sandino
 */
public class CtrlChat implements ICtrlChat{
    
    private HndlrChat HndlrConv = HndlrChat.getInstance();

    public CtrlChat() {
    }
    
    @Override
    public int InciarConv(String e, String r){
    
        return HndlrConv.IncioConv(e, r);
    
    }
    
    @Override
    public void Send(DataMensaje dm, int id){
    
        HndlrConv.Send(dm,id);
        
    }
    
    @Override
    public DataMensaje Recibe(String strUsr, int id){
    
        return HndlrConv.getMsj(id,strUsr);
    
    }
    
    @Override
    public String[] getParticipantes(String idChat){
        
        HashMap<String, Usuario> listPart = HndlrConv.getParticipantes(idChat);
        String [] res = new String[listPart.size()];
        Iterator<Usuario> it = listPart.values().iterator();
        int i = 0;
        while(it.hasNext()){
            
            Usuario us = it.next();
            res[i] = us.getCorreo();
            i++;
        }
        
        return res;
        
    }
    @Override
    public void agregarAmigoAlChat(int id, String invitado){
         
         HndlrConv.agregarAmigoAlChat(id, invitado,Factory.getInstance().getUsuarios().getUSuarioU(invitado));
         
     }
    @Override
    public void abandonarChat(int id, String clave){
         
         HndlrConv.abandonarChat(id,clave,Factory.getInstance().getUsuarios().getUSuarioU(clave));
         
     }
    
    @Override
    public ArrayList<DataMensaje> getHistorial(String idChat){
        
      return  HndlrConv.getHistorial(idChat);
        
    }
    
    public boolean finalizoChat(String idChat){
       
        return HndlrConv.finalizoChat(idChat);
        
    }
}
